1. Field of the Invention
The present invention relates to the field of multi-source messaging and more particularly to sequencing multi-source messages for delivery to a destination.
2. Description of the Related Art
In the modern network architecture, data can be passed from source to destination across multiple, redundant paths in many different segments. In this regard, data can be segmented into packets and individually transmitted from source to destination. Depending upon the latencies experienced in the different paths of communication to the destination, different packets can arrive at different times in different orders. As such, re-assembling the packets into the proper order cannot depend only upon the order in which the packets are received at the destination. Rather, each packet can encapsulate a sequence number, however, to facilitate the proper ordering of packets upon reconstruction of the data at the destination.
Similar to data passing at the network level, in event processing architectures, including the enterprise service bus (ESB) architecture, or the common event infrastructure architecture, a sequence of messages for an event can be transmitted from source to destination and can arrive at different times at the destination, not necessarily in the same order in which the messages are transmitted. To compound matters, oftentimes, multiple sources can emit the messages intended for the destination. Yet worse, in many cases, multiple destinations can subscribe to the receipt of all or only a portion of the messages. Accordingly, merely assigning a sequence number to each message cannot provide a comprehensive solution given the many message sources involved.
To address the problem of sequencing multi-source messages, some have suggested imposing centralized authority over the assignment of sequence numbers when sending multiple messages. Specifically, it has been proposed to require that each source in a multi-source messaging system defer to the judgment of a centralized authority in assigning sequence numbers to messages. In this way, the centralized authority can ensure that each message is uniquely numbered in accordance with a proper sequence so that recipients can amply reconstruct the sequence of messages. Notwithstanding, it is to be recognized that deploying a centralized authority in a multi-source messaging system can impose unduly burdensome delays in message processing.
Ordering messages in a multi-source messaging system can be important for several reasons. First, destination recipients of the messages must know how to re-assemble the proper sequence of messages so as to properly interpret the stream of messages and to respond accordingly. Also, by knowing the proper sequence of messages, one can easily detect message loss. Yet, at present one can provide for proper sequencing of messages only at the expense of processing performance due to the overhead of interacting with a centralized authority.